package kitex_conf

import "gitee.com/byx_darwin/micro-extend/pkg/config/client"

// Server 服务端配置
type Server struct {
	Rpc        rpc               `json:"rpc"  yaml:"rpc"`                //服务ip配置
	Polaris    client.Polaris    `json:"polaris"  yaml:"polaris"`        //北极星注册中心配置
	Jaeger     client.Jaeger     `json:"jaeger"  yaml:"jaeger"`          //链路配置
	Transport  transport         `json:"transport"  yaml:"transport"`    //多路复用配置
	Limit      limit             `json:"limit"  yaml:"limit"`            //限流器
	StatsLevel client.StatsLevel `json:"stats_level" yaml:"stats_level"` //埋点策略&埋点粒度
}

// Service 服务名称配置
type Service struct {
	Space   string `json:"space"  yaml:"space"`     //服务空间名称
	Name    string `json:"name"  yaml:"name"`       //服务名称
	Version string `json:"version"  yaml:"version"` //版本信息
	Env     string `json:"env" yaml:"env"`
}

// 服务地址端口配置
type rpc struct {
	Enable  bool   `json:"enable"  yaml:"enable" `  //是否启用rpc自定义配置
	Address string `json:"address" yaml:"address"`  //地址
	Network string `json:"network"  yaml:"network"` //连接方式 (tcp udp)
}

// 多路复用配置
type transport struct {
	Enable bool `json:"enable"  yaml:"enable"` //是否启用多路复用
}

// 限流器配置
type limit struct {
	Enable         bool `json:"enable" yaml:"enable"`                    //是否启用多路复用
	MaxConnections int  `json:"max_connections"  yaml:"max_connections"` // 最大连接数
	MaxQPS         int  `json:"max_qps"  yaml:"max_qps"`                 //最大qps
}
